Recent developments in computer technology have increased the storage capacity of media storage devices (e.g., hard disks, CD-ROMs, etc.) and have simultaneously increased the volatile memory storage capacity and data processing speeds of computer systems. These developments have facilitated using computer systems for processing and playback of signals representing motion pictures with associated sound recordings and other audio/visual multimedia works. To meet the demand for playing back audio/visual works in digital format, the Motion Picture Expert Group or MPEG format was developed. The MPEG format, as described in international specifications ISO/IEC 11172-1 to ISO/IEC 11172-3, et seq., provides data compression, decompression and data encoding and decoding techniques for digital audio and video signals to facilitate their storage, transmission and reproduction on computer systems. The MPEG format supplies the digital audio and video signals using a constant frame rate but a variable data rate. Specifically, the MPEG format offers an effective mechanism for intelligently compressing and decompressing digital video and audio signals and providing the decompressed signals to a playback mechanism for viewing.
In the past, recording formats for digital audio and video interleaved (e.g., AVI) data signals recorded data with a constant data rate and therefore a constant frame rate. In these systems, each frame of data contains the same amount of information and each transmission time interval also contains the same amount of information. In the prior art, there is a one-to-one correspondence between the number of bytes of a segment of an audio/video file and the playback duration for that segment. Therefore, seeking to a particular location (e.g., identified by a frame number or a time reference) of an audio/video file is relatively simple in a constant data rate format. As a result, these prior art video and audio display formats, due to the above characteristics, did not pose any special problems when seeking to a particular reference time or frame number within the audio/video file.
However, the MPEG format encodes the audio and video digital signals in an intelligent manner using variable data rates. During audio/video data encoding and recording, MPEG data is compressed using different frame types. Routinely, in lieu of storing all data within a conventional video frame, MPEG encodes and records only those parts of sequential frames that are altered from frame to frame (among other techniques) in an effort to compress the data. In the recorded data, the number of bytes representing a frame varies from frame to frame in MPEG, however, the frame update rate is constant during playback. What results is a variable data rate recording format where one frame of data (e.g., 1/40 of a second of playback time) can be represented by x bytes while a subsequent frame of data (e.g. another 1/40 of a second of playback time) is represented by only 5% of x bytes. The use of a variable data rate recording format poses problems when seeking through an audio/video file to a requested playback time (referenced by time in milliseconds or frame number) because MPEG does not use the same number of data bytes to represent each playback interval (e.g., a frame).
In order to perform seeks through an MPEG audio/video file to a particular playback location, prior art systems have resorted to parsing through the entire audio/video file until the requested playback time or frame number is encountered within the encoded data. This is method of seeking takes a substantial amount of time to complete and requires a significant amount of processing resources to parse the MPEG data looking for the requested playback time or frame number. This prior art technique is not desirable because these processing resources should be performing other more useful tasks.
Accordingly, it is desired to provide a playback system (e.g., a computer system or dedicated computer controlled digital playback system) with the ability to efficiently and effectively locate a requested playback time or frame number within an audio/video file that is recorded within a variable data rate recording format. It is further desired to provide a playback system as described above for providing efficient seeking capabilities within audio/video files recorded in the MPEG format.